package com.jcli._自己的想法._文件流._移动删除;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;

public class FileMoveAndDelete {
    public static void main(String[] args) {
            String basePath = "此电脑\\Jc 的 Note10+\\内部存储\\BaiduNetdisk\\我的学习\\孟2024\\【No1374】SpringBoot+Vue 开发博客系统完整项目"; // 修改为你的指定路径
        moveFilesUp(basePath);
    }

    private static void moveFilesUp(String basePath) {
        File baseDir = new File(basePath);

        // 检查目录是否存在
        if (!baseDir.exists() || !baseDir.isDirectory()) {
            System.out.println("指定的路径不存在或不是一个目录。");
            return;
        }

        // 获取所有文件
        File[] files = baseDir.listFiles();

        if (files != null) {
            for (File file : files) {
                if (file.isDirectory() && file.getName().matches("\\d{2}.*")) {
                    // 如果是以00到99开头的文件夹
                    moveFilesToParent(file);
                    deleteEmptyFolder(file);
                    System.out.println("文件已经进行处理。");
                }
            }
        }
    }

    private static void moveFilesToParent(File directory) {
        File[] files = directory.listFiles();

        if (files != null) {
            for (File file : files) {
                try {
                    // 移动文件到上一层
                    Path sourcePath = file.toPath();
                    Path destinationPath = new File(directory.getParentFile(), file.getName()).toPath();
                    Files.move(sourcePath, destinationPath, StandardCopyOption.REPLACE_EXISTING);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        System.out.println("11文件已经进行处理。");
    }
/**
 * 删除空文件夹
 * @author li
 * @date 2024/3/11 0:38
 * @param  folder
 * @return void
 */
    private static void deleteEmptyFolder(File folder) {
        // 删除空文件夹
        if (folder.listFiles() != null && folder.listFiles().length == 0) {
            folder.delete();
        }
    }
}
